iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0

Kotlin的空值安全設計,對於宣告可為空值的参數,在使用時要進行空值判斷處理,有兩種處理方式:

  1. 字段後加!!像Java一樣抛出空值異常
  2. 字段後加?可不做處理返回值為null或配合?:做空值判斷處理
//類型後面加?表示可為空值
var age: String? = "2%"

//抛出空值異常
val age1 = age!!.toInt()

//不做處理返回 null
val age2 = age?.toInt()

//age為空值返回-1
val age3 = age?.toInt() ?: -1

當引用可能為null值的時候, 對應的類型宣告必須明確的標記可為null

// 當 str 中的字串内容不是整數時, 返回null
fun parseInt(str: String): Int? {
  // ...
}

使用返回值可為null的函数:

fun main(args: Array<String>) {
  if (args.size < 2) {
    print("Two integers expected")
    return
  }
  val x = parseInt(args[0])
  val y = parseInt(args[1])
  
  // 直接使用 `x * y` 會出現錯誤, 因為可能為null
  if (x != null && y != null) {
    // 進行過null值檢查後, x 和 y 的類型會被自動轉換為非null
    print(x * y)
  }
}

謝謝大家願意花時間閱讀,小弟弟我在此鞠躬/images/emoticon/emoticon41.gif


上一篇
[Lesson21] Kotlin - 宣告變數
下一篇
[Lesson23] Kotlin - 迴圈
系列文
刮掉Web Development的我,與撿到的Android Development30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言